package com.zw.a.basic.a08.demo04_exercise;

//案例: 演示字符串拼接.
/*
    涉及到的字符串中的方法:
        public String concat(String str);       拼接字符串, 返回新串.
 */
public class Demo04 {
    public static void main(String[] args) {
        //演示concat()方法,   了解即可, 实际开发写的比较少.
        String s1 = "ab";
        String s2 = "c";
        String s3 = s1 + s2;        //s3 = "abc", 会开辟空间(堆)
        String s4 = s1.concat(s2);  //s4 = "abc", 不会开辟堆空间.
        System.out.println("s3: " + s3);
        System.out.println("s4: " + s4);
        System.out.println("--------------------");

        /*
            需求:
                1.定义方法arrayToString(), 把int数组的元素按照指定的格式拼接成一个字符串, 并返回.
                2.在main方法中, 调用上述的方法.
                3.例如: 数组为int[] arr = {1, 2, 3}, 则拼接后, 结果为: [1, 2, 3]
         */
        //2. 调用方法
        //int[] arr = {1, 2, 3};
        int[] arr = null;
        System.out.println(array2String(arr));
    }

    //1. 定义方法arrayToString(), 把int数组的元素按照指定的格式拼接成一个字符串, 并返回.
    public static String array2String(int[] arr) {
        //先做越界处理.
        if (arr == null || arr.length == 0)
            return "[]";
        //正常的拼接逻辑.
        String s = "[";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1)
                s += (arr[i] + "]");
            else
                s += (arr[i] + ", ");

            //通过三元优化,自己写.
        }
        return s;
    }
}
